<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="keywords" content="Hexo Theme Redefine">
    
    <meta name="author" content="xiaoeryu">
    <!-- preconnect -->
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

    
    <!--- Seo Part-->
    
    <link rel="canonical" href="https://xiaoeeyu.github.io/2021/09/08/010edit破解-注册机/"/>
    <meta name="robots" content="index,follow">
    <meta name="googlebot" content="index,follow">
    <meta name="revisit-after" content="1 days">
    
    
    
        
        <meta name="description" content="010edit是一款非常好用的二进制文本编辑器，但是这款软件不是免费的，so让我们来分析一下它的算法，写一下注册机。">
<meta property="og:type" content="article">
<meta property="og:title" content="010EDIT破解&amp;注册机">
<meta property="og:url" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/index.html">
<meta property="og:site_name" content="xiaoeryu">
<meta property="og:description" content="010edit是一款非常好用的二进制文本编辑器，但是这款软件不是免费的，so让我们来分析一下它的算法，写一下注册机。">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551343193(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549007784(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549009303(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549010306(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549011565(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549012535(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549266039(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549612731(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549613332(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551265907.jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551266349(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551268502(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551282055.jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551282512(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551340686(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551338641(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551331582(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551335094(1).png">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551344447(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551335661(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551335834(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551336212(1).jpg">
<meta property="og:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551336622(1).jpg">
<meta property="article:published_time" content="2021-09-07T16:32:31.000Z">
<meta property="article:modified_time" content="2023-11-17T11:49:36.914Z">
<meta property="article:author" content="xiaoeryu">
<meta property="article:tag" content="注册机">
<meta property="article:tag" content="软件破解">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://xiaoeeyu.github.io/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551343193(1).jpg">
    
    
    <!--- Icon Part-->
    <link rel="icon" type="image/png" href="/images/rabete.jpg" sizes="192x192">
    <link rel="apple-touch-icon" sizes="180x180" href="/images/rabete.jpg">
    <meta name="theme-color" content="#A31F34">
    <link rel="shortcut icon" href="/images/rabete.jpg">
    <!--- Page Info-->
    
    <title>
        
            010EDIT破解&amp;注册机 | xiaoeryu
        
    </title>

    
<link rel="stylesheet" href="/fonts/Chillax/chillax.css">


    <!--- Inject Part-->
    

    
<link rel="stylesheet" href="/css/style.css">


    
        
<link rel="stylesheet" href="/css/build/tailwind.css">

    

    
<link rel="stylesheet" href="/fonts/GeistMono/geist-mono.css">

    
<link rel="stylesheet" href="/fonts/Geist/geist.css">

    <!--- Font Part-->
    
    
    
    
    
    

    <script id="hexo-configurations">
    window.config = {"hostname":"xiaoeeyu.github.io","root":"/","language":"zh-CN","path":"search.xml"};
    window.theme = {"articles":{"style":{"font_size":"16px","line_height":1.5,"image_border_radius":"14px","image_alignment":"center","image_caption":false,"link_icon":true,"delete_mask":false,"title_alignment":"left","headings_top_spacing":{"h1":"3.2rem","h2":"2.4rem","h3":"1.9rem","h4":"1.6rem","h5":"1.4rem","h6":"1.3rem"}},"word_count":{"enable":true,"count":true,"min2read":true},"author_label":{"enable":true,"auto":false,"list":[]},"code_block":{"copy":true,"style":"mac","highlight_theme":{"light":"github","dark":"vs2015"},"font":{"enable":false,"family":null,"url":null}},"toc":{"enable":true,"max_depth":4,"number":false,"expand":true,"init_open":true},"copyright":{"enable":true,"default":"cc_by_nc_sa"},"lazyload":true,"pangu_js":false,"recommendation":{"enable":false,"title":"推荐阅读","limit":3,"mobile_limit":2,"placeholder":"/images/ball-0101.jpg","skip_dirs":[]}},"colors":{"primary":"#A31F34","secondary":null,"default_mode":"light"},"global":{"fonts":{"chinese":{"enable":false,"family":null,"url":null},"english":{"enable":false,"family":null,"url":null},"title":{"enable":false,"family":null,"url":null}},"content_max_width":"1000px","sidebar_width":"210px","hover":{"shadow":true,"scale":false},"scroll_progress":{"bar":false,"percentage":true},"website_counter":{"url":"https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js","enable":true,"site_pv":true,"site_uv":true,"post_pv":true},"single_page":true,"preloader":{"enable":false,"custom_message":null},"open_graph":true,"google_analytics":{"enable":false,"id":null}},"home_banner":{"enable":true,"style":"fixed","image":{"light":"/images/wallhaven-jxl31y.png","dark":"/images/wallhaven-o5762l.png"},"title":"XIAOERYU","subtitle":{"text":["明心见性，拨云见日","Don't wait, to create"],"hitokoto":{"enable":false,"show_author":false,"api":"https://v1.hitokoto.cn"},"typing_speed":100,"backing_speed":80,"starting_delay":500,"backing_delay":1500,"loop":true,"smart_backspace":true},"text_color":{"light":"#fff","dark":"#d1d1b6"},"text_style":{"title_size":"2.8rem","subtitle_size":"1.5rem","line_height":1.2},"custom_font":{"enable":false,"family":null,"url":null},"social_links":{"enable":true,"style":"default","links":{"github":"https://github.com/xiaoeeyu","instagram":null,"zhihu":null,"twitter":null,"email":"xiaoeryu@163.com"},"qrs":{"weixin":null}}},"plugins":{"feed":{"enable":false},"aplayer":{"enable":false,"type":"fixed","audios":[{"name":null,"artist":null,"url":null,"cover":null,"lrc":null}]},"mermaid":{"enable":false,"version":"9.3.0"}},"version":"2.8.2","navbar":{"auto_hide":false,"color":{"left":"#f78736","right":"#367df7","transparency":35},"width":{"home":"1200px","pages":"1000px"},"links":{"Home":{"path":"/","icon":"fa-regular fa-house"},"Archives":{"path":"/archives","icon":"fa-regular fa-archive"}},"search":{"enable":true,"preload":true}},"page_templates":{"friends_column":2,"tags_style":"blur"},"home":{"sidebar":{"enable":true,"position":"left","first_item":"menu","announcement":null,"show_on_mobile":true,"links":null},"article_date_format":"auto","excerpt_length":200,"categories":{"enable":true,"limit":3},"tags":{"enable":true,"limit":3}},"footerStart":"2022/8/17 11:45:14"};
    window.lang_ago = {"second":"%s 秒前","minute":"%s 分钟前","hour":"%s 小时前","day":"%s 天前","week":"%s 周前","month":"%s 个月前","year":"%s 年前"};
    window.data = {"masonry":false};
  </script>
    
    <!--- Fontawesome Part-->
    
<link rel="stylesheet" href="/fontawesome/fontawesome.min.css">

    
<link rel="stylesheet" href="/fontawesome/brands.min.css">

    
<link rel="stylesheet" href="/fontawesome/solid.min.css">

    
<link rel="stylesheet" href="/fontawesome/regular.min.css">

    
    
    
    
<meta name="generator" content="Hexo 6.3.0">
<style>.github-emoji { position: relative; display: inline-block; width: 1.2em; min-height: 1.2em; overflow: hidden; vertical-align: top; color: transparent; }  .github-emoji > span { position: relative; z-index: 10; }  .github-emoji img, .github-emoji .fancybox { margin: 0 !important; padding: 0 !important; border: none !important; outline: none !important; text-decoration: none !important; user-select: none !important; cursor: auto !important; }  .github-emoji img { height: 1.2em !important; width: 1.2em !important; position: absolute !important; left: 50% !important; top: 50% !important; transform: translate(-50%, -50%) !important; user-select: none !important; cursor: auto !important; } .github-emoji-fallback { color: inherit; } .github-emoji-fallback img { opacity: 0 !important; }</style>
</head>



<body>
	<div class="progress-bar-container">
	

	
	<span class="pjax-progress-bar"></span>
	<!--        <span class="swup-progress-icon">-->
	<!--            <i class="fa-solid fa-circle-notch fa-spin"></i>-->
	<!--        </span>-->
	
</div>

<main class="page-container" id="swup">

	

	<div class="main-content-container flex flex-col justify-between min-h-dvh">
		<div class="main-content-header">
			<header class="navbar-container px-6 md:px-12">
    <div class="navbar-content transition-navbar ">
        <div class="left">
            
                <a class="logo-image h-8 w-8 sm:w-10 sm:h-10 mr-3" href="/">
                    <img src="/images/rabete.jpg" class="w-full h-full rounded-sm">
                </a>
            
            <a class="logo-title" href="/">
                
                xiaoeryu
                
            </a>
        </div>

        <div class="right">
            <!-- PC -->
            <div class="desktop">
                <ul class="navbar-list">
                    
                        
                            

                            <li class="navbar-item">
                                <!-- Menu -->
                                <a class=""
                                   href="/"
                                        >
                                    <i class="fa-regular fa-house fa-fw"></i>
                                    首页
                                    
                                </a>

                                <!-- Submenu -->
                                
                            </li>
                    
                        
                            

                            <li class="navbar-item">
                                <!-- Menu -->
                                <a class=""
                                   href="/archives"
                                        >
                                    <i class="fa-regular fa-archive fa-fw"></i>
                                    归档
                                    
                                </a>

                                <!-- Submenu -->
                                
                            </li>
                    
                    
                        <li class="navbar-item search search-popup-trigger">
                            <i class="fa-solid fa-magnifying-glass"></i>
                        </li>
                    
                </ul>
            </div>
            <!-- Mobile -->
            <div class="mobile">
                
                    <div class="icon-item search search-popup-trigger"><i class="fa-solid fa-magnifying-glass"></i>
                    </div>
                
                <div class="icon-item navbar-bar">
                    <div class="navbar-bar-middle"></div>
                </div>
            </div>
        </div>
    </div>

    <!-- Mobile sheet -->
    <div class="navbar-drawer h-dvh w-full absolute top-0 left-0 bg-background-color flex flex-col justify-between">
        <ul class="drawer-navbar-list flex flex-col px-4 justify-center items-start">
            
                
                    

                    <li class="drawer-navbar-item text-base my-1.5 flex flex-col w-full">
                        
                        <a class="py-1.5 px-2 flex flex-row items-center justify-between gap-1 hover:!text-primary active:!text-primary text-2xl font-semibold group border-b border-border-color hover:border-primary w-full "
                           href="/"
                        >
                            <span>
                                首页
                            </span>
                            
                                <i class="fa-regular fa-house fa-sm fa-fw"></i>
                            
                        </a>
                        

                        
                    </li>
            
                
                    

                    <li class="drawer-navbar-item text-base my-1.5 flex flex-col w-full">
                        
                        <a class="py-1.5 px-2 flex flex-row items-center justify-between gap-1 hover:!text-primary active:!text-primary text-2xl font-semibold group border-b border-border-color hover:border-primary w-full "
                           href="/archives"
                        >
                            <span>
                                归档
                            </span>
                            
                                <i class="fa-regular fa-archive fa-sm fa-fw"></i>
                            
                        </a>
                        

                        
                    </li>
            

            
            
        </ul>

        <div class="statistics flex justify-around my-2.5">
    <a class="item tag-count-item flex flex-col justify-center items-center w-20" href="/tags">
        <div class="number text-2xl sm:text-xl text-second-text-color font-semibold">92</div>
        <div class="label text-third-text-color text-sm">标签</div>
    </a>
    <a class="item tag-count-item flex flex-col justify-center items-center w-20" href="/categories">
        <div class="number text-2xl sm:text-xl text-second-text-color font-semibold">14</div>
        <div class="label text-third-text-color text-sm">分类</div>
    </a>
    <a class="item tag-count-item flex flex-col justify-center items-center w-20" href="/archives">
        <div class="number text-2xl sm:text-xl text-second-text-color font-semibold">112</div>
        <div class="label text-third-text-color text-sm">文章</div>
    </a>
</div>
    </div>

    <div class="window-mask"></div>

</header>


		</div>

		<div class="main-content-body transition-fade-up">
			

			<div class="main-content">
				<div class="post-page-container flex relative justify-between box-border w-full h-full">
	<div class="article-content-container">

		<div class="article-title relative w-full">
			
			<div class="w-full flex items-center pt-6 justify-start">
				<h1 class="article-title-regular text-second-text-color tracking-tight text-4xl md:text-6xl font-semibold px-2 sm:px-6 md:px-8 py-3">010EDIT破解&amp;注册机</h1>
			</div>
			
		</div>

		
		<div class="article-header flex flex-row gap-2 items-center px-2 sm:px-6 md:px-8">
			<div class="avatar w-[46px] h-[46px] flex-shrink-0 rounded-medium border border-border-color p-[1px]">
				<img src="/images/rabete.jpg">
			</div>
			<div class="info flex flex-col justify-between">
				<div class="author flex items-center">
					<span class="name text-default-text-color text-lg font-semibold">xiaoeryu</span>
					
					<span class="author-label ml-1.5 text-xs px-2 py-0.5 rounded-small text-third-text-color border border-shadow-color-1">Lv5</span>
					
				</div>
				<div class="meta-info">
					<div class="article-meta-info">
    <span class="article-date article-meta-item">
        <i class="fa-regular fa-pen-fancy"></i>&nbsp;
        <span class="desktop">2021-09-08 00:32:31</span>
        <span class="mobile">2021-09-08 00:32:31</span>
        <span class="hover-info">创建</span>
    </span>
    
        <span class="article-date article-meta-item">
            <i class="fa-regular fa-wrench"></i>&nbsp;
            <span class="desktop">2023-11-17 19:49:36</span>
            <span class="mobile">2023-11-17 19:49:36</span>
            <span class="hover-info">更新</span>
        </span>
    

    
        <span class="article-categories article-meta-item">
            <i class="fa-regular fa-folders"></i>&nbsp;
            <ul>
                
                
                    
                        
                        <li>
                            <a href="/categories/Win%E9%80%86%E5%90%91/">Win逆向</a>&nbsp;
                        </li>
                    
                    
                
            </ul>
        </span>
    
    
        <span class="article-tags article-meta-item">
            <i class="fa-regular fa-tags"></i>&nbsp;
            <ul>
                
                    <li>
                        <a href="/tags/%E6%B3%A8%E5%86%8C%E6%9C%BA/">注册机</a>&nbsp;
                    </li>
                
                    <li>
                        | <a href="/tags/%E8%BD%AF%E4%BB%B6%E7%A0%B4%E8%A7%A3/">软件破解</a>&nbsp;
                    </li>
                
            </ul>
        </span>
    

    
    
    
    
        <span class="article-pv article-meta-item">
            <i class="fa-regular fa-eye"></i>&nbsp;<span id="busuanzi_value_page_pv"></span>
        </span>
    
</div>

				</div>
			</div>
		</div>
		

		


		<div class="article-content markdown-body px-2 sm:px-6 md:px-8 pb-8">
			<p>010edit是一款非常好用的二进制文本编辑器，但是这款软件不是免费的，so让我们来分析一下它的算法，写一下注册机。</p>
<span id="more"></span>

<h3 id="环境："><a href="#环境：" class="headerlink" title="环境："></a>环境：</h3><p>win7 32虚拟机，OD，IDA</p>
<h3 id="分析目标"><a href="#分析目标" class="headerlink" title="分析目标"></a>分析目标</h3><ol>
<li>编写注册机</li>
<li>去除网络验证</li>
</ol>
<h3 id="开始分析"><a href="#开始分析" class="headerlink" title="开始分析"></a>开始分析</h3><h4 id="0x00-今天我们分析的是9-0版本"><a href="#0x00-今天我们分析的是9-0版本" class="headerlink" title="0x00 今天我们分析的是9.0版本"></a>0x00 今天我们分析的是9.0版本</h4><img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551343193(1).jpg" class="" title="img">

<h4 id="0x01-开始分析，我们点击register按钮，弹出来窗口让我们输入用户名-amp-密码"><a href="#0x01-开始分析，我们点击register按钮，弹出来窗口让我们输入用户名-amp-密码" class="headerlink" title="0x01 开始分析，我们点击register按钮，弹出来窗口让我们输入用户名&amp;密码"></a>0x01 开始分析，我们点击register按钮，弹出来窗口让我们输入用户名&amp;密码</h4><img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549007784(1).jpg" class="" title="img">

<p>随便先输入了一组用户名和密码，弹出了提示窗口，接下来我们用OD打开010来查找这个字符串</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549009303(1).jpg" class="" title="img">

<p>双击找到字符串的位置，往上分析看是从什么地方跳过来的，通过下断点尝试我们找到了这个它做验证的位置</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549010306(1).jpg" class="" title="img">

<h4 id="0x02-接下来我们对关键算法函数进行详细分析"><a href="#0x02-接下来我们对关键算法函数进行详细分析" class="headerlink" title="0x02 接下来我们对关键算法函数进行详细分析"></a>0x02 接下来我们对关键算法函数进行详细分析</h4><img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549011565(1).jpg" class="" title="img">

<p>在这里我们发现指令对我们输入的密码进行了一系列的操作验证</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549012535(1).jpg" class="" title="img">

<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549266039(1).jpg" class="" title="img">

<p>我们需要把对密码的验证操作逐条分析出来，便于写注册机时使用</p>
<p>通过对这一块的分析，我们得到了密码的验证规则，接下来我们写代码尝试验证看我们分析的是否正确</p>
<pre><code>#include "stdafx.h"
#include &lt;Windows.h&gt;
#include&lt;time.h&gt;

int main()
{
 srand(time(NULL));

 byte k[10] = { 0X11,0X22,0X33,0X9C,0X55,0X66,0X77,0X88,0X99,0X00 };

 while (true)
 {
  byte K0 = rand() % 0xff;
  byte K6 = rand() % 0xff;

  byte al = ((K0 ^ K6) ^ 0x18 + 0x3d) ^ 0xa7;

  if (al &gt; 0)
  {
   k[0] = K0;
   k[6] = K6;
   break;
  }
 }

 while (true)
 {
  byte K1 = rand() % 0xff;
  byte K7 = rand() % 0xff;
  byte K2 = rand() % 0xff;
  byte K5 = rand() % 0xff;

  DWORD ESI = (0x100 * (K1 ^ K7 &amp; 0xff) + K2^K5 &amp; 0xff) &amp; 0xffff;
  DWORD EAX = (((ESI ^ 0x7892) + 0x4d30) ^ 0x3421) &amp; 0xffff;

  if (EAX % 0xb == 0 &amp;&amp; EAX / 0xb &lt;= 0x3e8)
  {
   k[1] = K1;
   k[7] = K7;
   k[2] = K2;
   k[5] = K5;
   break;
  }
 }
 printf("%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X", k[0], k[1], k[2], k[3], k[4], k[5], k[6], k[7], k[8], k[9]);

 getchar();

    return 0;
}
</code></pre>
<p>这样我们打开vs执行上面的代码可以得到符合密码验证规则的一个秘钥</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549612731(1).jpg" class="" title="img">

<p>但是这样输进去之后，我们依旧是不能成功的，like this</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1549613332(1).jpg" class="" title="img">

<p>因为这只是第一轮对密码的单独验证，在它后面还有第二轮验证，在第二轮验证中会把用户名也放进来和密码形成一个对应关系，符合了这两次的验证，我们的密码验证才算是通过。</p>
<h4 id="0x03-接下来我们开始分析第二轮的验证"><a href="#0x03-接下来我们开始分析第二轮的验证" class="headerlink" title="0x03. 接下来我们开始分析第二轮的验证"></a>0x03. 接下来我们开始分析第二轮的验证</h4><p>继续单步F8往下跟，不远处会有一个跳转，跳转之后开始了第二轮的验证</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551265907.jpg" class="" title="img">

<p>在分析第二轮验证的时候我们要重点分析，用户名和密码之间的对应关系，来编写后面的代码</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551266349(1).jpg" class="" title="img">
<p>a. 通过对上面这块代码的分析我们知道了，用户名是和K[4] ~ K[7]有一定的对应关系的</p>
<h4 id="0x04-现在我们梳理一下我们已有的信息"><a href="#0x04-现在我们梳理一下我们已有的信息" class="headerlink" title="0x04 现在我们梳理一下我们已有的信息"></a>0x04 现在我们梳理一下我们已有的信息</h4><p>a. 如果K[3] = 9C的话, 密码只需要8个字节就可以了.<br>b. 我们通过上面的代码已经知道了, K[0] ~ K[7]怎么样才可以通过第一轮的验证.</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551268502(1).jpg" class="" title="img">
<p>c. 通过分析我们得知K[4] = sub_1062f86返回值的最后一个字节, K[5] = 倒数第二个字节, K[6], K[7]以此类推.<br>d. 然后我们发现通过上面的对应关系我们只要求出来了用户名的值, 就已经得到了K[4] ~ K[7]的值.<br>e. 然后我们需要思考, 怎么才能得到程序中传入用户名求出的值.</p>
<h4 id="0x05-let’s-do-it"><a href="#0x05-let’s-do-it" class="headerlink" title="0x05 let’s do it"></a>0x05 let’s do it</h4><p> 从OD里面找到sub_1062f86按F7进去&gt;ctrl + x复制地址&gt;在IDA里面G搜索这个地址(如果有重定位的话记得去掉重定位: edit&gt;segments&gt;rebase program )</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551282055.jpg" class="" title="img">

<p>按F5把汇编转换成C代码&gt;会看到里面用到了一个数组&gt;将这个数组以字节的方式拷贝出来</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551282512(1).jpg" class="" title="img">

<p>将数组以字节的形式拷贝出来(因为OD没装数据转换插件所以用的x32拷贝)</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551340686(1).jpg" class="" title="img">

<p>然后看一下参数是否需要修改(这里面需要修改最后一个参数的类型改为DWORD)(是否需要修改可以看OD里面的参数类型)</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551338641(1).jpg" class="" title="img">

<p>然后Ctrl+A全选&gt;复制,将之作为一个函数粘贴到我们之前的代码里面</p>
<p>这样我们就完成了, 我们注册机代码的编写</p>
<pre><code>// decode010.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include &lt;windows.h&gt;
#include &lt;time.h&gt;

DWORD g_EcodeArray[] =
{ 0x39CB44B8, 0x23754F67, 0x5F017211, 0x3EBB24DA, 0x351707C6, 0x63F9774B, 0x17827288, 0x0FE74821, 0x5B5F670F, 0x48315AE8, 0x785B7769, 0x2B7A1547,
0x38D11292, 0x42A11B32, 0x35332244, 0x77437B60, 0x1EAB3B10, 0x53810000, 0x1D0212AE, 0x6F0377A8, 0x43C03092, 0x2D3C0A8E, 0x62950CBF, 0x30F06FFA,
0x34F710E0, 0x28F417FB, 0x350D2F95, 0x5A361D5A, 0x15CC060B, 0x0AFD13CC, 0x28603BCF, 0x3371066B, 0x30CD14E4, 0x175D3A67, 0x6DD66A13, 0x2D3409F9,
0x581E7B82, 0x76526B99, 0x5C8D5188, 0x2C857971, 0x15F51FC0, 0x68CC0D11, 0x49F55E5C, 0x275E4364, 0x2D1E0DBC, 0x4CEE7CE3, 0x32555840, 0x112E2E08,
0x6978065A, 0x72921406, 0x314578E7, 0x175621B7, 0x40771DBF, 0x3FC238D6, 0x4A31128A, 0x2DAD036E, 0x41A069D6, 0x25400192, 0x00DD4667, 0x6AFC1F4F,
0x571040CE, 0x62FE66DF, 0x41DB4B3E, 0x3582231F, 0x55F6079A, 0x1CA70644, 0x1B1643D2, 0x3F7228C9, 0x5F141070, 0x3E1474AB, 0x444B256E, 0x537050D9,
0x0F42094B, 0x2FD820E6, 0x778B2E5E, 0x71176D02, 0x7FEA7A69, 0x5BB54628, 0x19BA6C71, 0x39763A99, 0x178D54CD, 0x01246E88, 0x3313537E, 0x2B8E2D17,
0x2A3D10BE, 0x59D10582, 0x37A163DB, 0x30D6489A, 0x6A215C46, 0x0E1C7A76, 0x1FC760E7, 0x79B80C65, 0x27F459B4, 0x799A7326, 0x50BA1782, 0x2A116D5C,
0x63866E1B, 0x3F920E3C, 0x55023490, 0x55B56089, 0x2C391FD1, 0x2F8035C2, 0x64FD2B7A, 0x4CE8759A, 0x518504F0, 0x799501A8, 0x3F5B2CAD, 0x38E60160,
0x637641D8, 0x33352A42, 0x51A22C19, 0x085C5851, 0x032917AB, 0x2B770AC7, 0x30AC77B3, 0x2BEC1907, 0x035202D0, 0x0FA933D3, 0x61255DF3, 0x22AD06BF,
0x58B86971, 0x5FCA0DE5, 0x700D6456, 0x56A973DB, 0x5AB759FD, 0x330E0BE2, 0x5B3C0DDD, 0x495D3C60, 0x53BD59A6, 0x4C5E6D91, 0x49D9318D, 0x103D5079,
0x61CE42E3, 0x7ED5121D, 0x14E160ED, 0x212D4EF2, 0x270133F0, 0x62435A96, 0x1FA75E8B, 0x6F092FBE, 0x4A000D49, 0x57AE1C70, 0x004E2477, 0x561E7E72,
0x468C0033, 0x5DCC2402, 0x78507AC6, 0x58AF24C7, 0x0DF62D34, 0x358A4708, 0x3CFB1E11, 0x2B71451C, 0x77A75295, 0x56890721, 0x0FEF75F3, 0x120F24F1,
0x01990AE7, 0x339C4452, 0x27A15B8E, 0x0BA7276D, 0x60DC1B7B, 0x4F4B7F82, 0x67DB7007, 0x4F4A57D9, 0x621252E8, 0x20532CFC, 0x6A390306, 0x18800423,
0x19F3778A, 0x462316F0, 0x56AE0937, 0x43C2675C, 0x65CA45FD, 0x0D604FF2, 0x0BFD22CB, 0x3AFE643B, 0x3BF67FA6, 0x44623579, 0x184031F8, 0x32174F97,
0x4C6A092A, 0x5FB50261, 0x01650174, 0x33634AF1, 0x712D18F4, 0x6E997169, 0x5DAB7AFE, 0x7C2B2EE8, 0x6EDB75B4, 0x5F836FB6, 0x3C2A6DD6, 0x292D05C2,
0x052244DB, 0x149A5F4F, 0x5D486540, 0x331D15EA, 0x4F456920, 0x483A699F, 0x3B450F05, 0x3B207C6C, 0x749D70FE, 0x417461F6, 0x62B031F1, 0x2750577B,
0x29131533, 0x588C3808, 0x1AEF3456, 0x0F3C00EC, 0x7DA74742, 0x4B797A6C, 0x5EBB3287, 0x786558B8, 0x00ED4FF2, 0x6269691E, 0x24A2255F, 0x62C11F7E,
0x2F8A7DCD, 0x643B17FE, 0x778318B8, 0x253B60FE, 0x34BB63A3, 0x5B03214F, 0x5F1571F4, 0x1A316E9F, 0x7ACF2704, 0x28896838, 0x18614677, 0x1BF569EB,
0x0BA85EC9, 0x6ACA6B46, 0x1E43422A, 0x514D5F0E, 0x413E018C, 0x307626E9, 0x01ED1DFA, 0x49F46F5A, 0x461B642B, 0x7D7007F2, 0x13652657, 0x6B160BC5,
0x65E04849, 0x1F526E1C, 0x5A0251B6, 0x2BD73F69, 0x2DBF7ACD, 0x51E63E80, 0x5CF2670F, 0x21CD0A03, 0x5CFF0261, 0x33AE061E, 0x3BB6345F, 0x5D814A75,
0x257B5DF4, 0x0A5C2C5B, 0x16A45527, 0x16F23945 };

int __cdecl EnCodeUsername(const char *userName, int a2, char a3, unsigned __int16 a4)    // 计算用户名字符串的值
{
 const char *v4; // edx@1
 signed int v5; // esi@1
 signed int v6; // edi@1
 unsigned __int8 v7; // bl@2
 int v8; // eax@3
 int v9; // ecx@3
 int v10; // ecx@4
 int result; // eax@4
 int v12; // ecx@5
 unsigned __int8 v13; // [sp+8h] [bp-10h]@2
 unsigned __int8 v14; // [sp+Ch] [bp-Ch]@2
 unsigned __int8 v15; // [sp+10h] [bp-8h]@2
 int v16; // [sp+14h] [bp-4h]@1

 v4 = userName;
 v16 = 0;
 v5 = strlen(userName);
 v6 = 0;
 if (v5 &lt;= 0)
 {
  result = 0;
 }
 else
 {
  v13 = 0;
  v14 = 0;
  v7 = 15 * a4;
  v15 = 17 * a3;
  do
  {
   v8 = toupper(v4[v6]);
   v9 = v16 + g_EcodeArray[v8];
   if (a2)
   {
    v10 = g_EcodeArray[v7]
     + g_EcodeArray[v15]
     + g_EcodeArray[(unsigned __int8)(v8 + 47)] * (g_EcodeArray[(unsigned __int8)(v8 + 13)] ^ v9);
    result = g_EcodeArray[v14] + v10;
    v16 = g_EcodeArray[v14] + v10;
   }
   else
   {
    v12 = g_EcodeArray[v7]
     + g_EcodeArray[v15]
     + g_EcodeArray[(unsigned __int8)(v8 + 23)] * (g_EcodeArray[(unsigned __int8)(v8 + 63)] ^ v9);
    result = g_EcodeArray[v13] + v12;
    v16 = g_EcodeArray[v13] + v12;
   }
   v14 += 19;
   ++v6;
   v15 += 9;
   v7 += 13;
   v13 += 7;
   v4 = userName;
  } while (v6 &lt; v5);
 }
 return result;
}

int main()
{
 srand(time(NULL));

 // 0. 初始化
 int dwRet = rand() % 0x3E8;
 byte k[10] = { 0x11, 0x22, 0x33, 0x9C, 0x55, 0x66, 0x77, 0x88, 0x99, 0x00 };

 // 用户名,加密求值
 char szName[50] = { 0 };
 printf("please enter user name:");
 scanf_s("%s", szName, 50);
 DWORD dwKey = EnCodeUsername(szName,1,0,dwRet);

 // 给k[4]~k[7]赋值

 // cmp K[4], retValue&amp;0xFF
 // cmp K[5], retValue&gt;&gt;8&amp;&amp;0xFF
 // cmp k[6], retvalue&gt;&gt;16&amp;&amp;0xFF
 // cmp k[7], retvalue&gt;&gt;24&amp;&amp;0xff
 k[4] = dwKey &amp; 0xFF;
 k[5] = dwKey &gt;&gt; 8 &amp; 0xFF;
 k[6] = dwKey &gt;&gt; 16 &amp; 0xFF;
 k[7] = dwKey &gt;&gt; 24 &amp; 0xFF;

 // 根据分析出来的算法穷举出合适的值
 while (true)
 {
  byte k0 = rand() % 0xff;
  byte k6 = k[6];

  byte al = ((k0 ^ k6) ^ 0x18 + 0x3d) ^ 0xa7;

  if (al &gt;= 0xA)
  {
   k[0] = k0;
   k[6] = k6;
   break;
  }
 }

 while (true)
 {
  byte k1 = rand() % 0xff;
  byte k7 = k[7];
  byte k2 = rand() % 0xff;
  byte k5 = k[5];

  DWORD ESI = (0x100 * (k1 ^ k7 &amp; 0xff) + k2 ^ k5 &amp; 0xff) &amp; 0xffff;
  DWORD EAX = (((ESI ^ 0x7892) + 0x4d30) ^ 0x3421) &amp; 0xffff;

  if (EAX % 0XB == 0 &amp;&amp; EAX / 0XB == dwRet)
  {
   k[1] = k1;
   k[7] = k7;
   k[2] = k2;
   k[5] = k5;
   break;
  }
 }
 // 打印key
 printf("%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X", k[0], k[1], k[2], k[3], k[4], k[5], k[6], k[7], k[8], k[9]);

 getchar();
 getchar();

    return 0;
}
</code></pre>
<h4 id="0x06-但是-之后在使用一段时间后-可能还会有网络验证-会提示说key无效的问题"><a href="#0x06-但是-之后在使用一段时间后-可能还会有网络验证-会提示说key无效的问题" class="headerlink" title="0x06 但是, 之后在使用一段时间后, 可能还会有网络验证, 会提示说key无效的问题"></a>0x06 但是, 之后在使用一段时间后, 可能还会有网络验证, 会提示说key无效的问题</h4><img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551331582(1).jpg" class="" title="img">

<p><strong>对于网络校验来说, 有两个方法可以过掉</strong></p>
<ol>
<li>自己搭建服务器, 分析它发送和接收的的数据包</li>
<li>修改文件使网络验证失效</li>
</ol>
<p><strong>在这里我们选用第二种方法, 来绕过它的网络验证</strong><br>在修改exe文件之前, 我们先用010把它的重定位去除掉, 位置: NtHeader &gt; FileHeader &gt; Characteristics &gt; FILE_RELOCS_STRIPPED字段</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551335094(1).png" class="" title="img">

<p>然后我们开始修改汇编代码<br>经过分析我们发现这里有两处验证的函数, 需要分别修改一下</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551344447(1).jpg" class="" title="img">
<p>修改过后保存一下</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551335661(1).jpg" class="" title="img">

<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551335834(1).jpg" class="" title="img">

<p>接下来我们继续修改后面一处验证<br>这个地方尝试了很多次, 发现eax返回1就可以通过这个验证, 像刚才一样我们把这里也修改保存下来</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551336212(1).jpg" class="" title="img">

<h4 id="over"><a href="#over" class="headerlink" title="over"></a>over</h4><p>这样我们就不用担心他的网络验证问题了</p>
<img lazyload="" src="/images/loading.svg" data-src="/2021/09/08/010EDIT%E7%A0%B4%E8%A7%A3-%E6%B3%A8%E5%86%8C%E6%9C%BA/1551336622(1).jpg" class="" title="img">

		</div>

		
		<div class="post-copyright-info w-full my-8 px-2 sm:px-6 md:px-8">
			<div class="article-copyright-info-container">
    <ul>
        <li><strong>标题:</strong> 010EDIT破解&amp;注册机</li>
        <li><strong>作者:</strong> xiaoeryu</li>
        <li><strong>创建于
                :</strong> 2021-09-08 00:32:31</li>
        
            <li>
                <strong>更新于
                    :</strong> 2023-11-17 19:49:36
            </li>
        
        <li>
            <strong>链接:</strong> https://github.com/xiaoeryu/2021/09/08/010EDIT破解-注册机/
        </li>
        <li>
            <strong>
                版权声明:
            </strong>
            

            
                本文章采用 <a class="license" target="_blank" rel="noopener" href="https://creativecommons.org/licenses/by-nc-sa/4.0">CC BY-NC-SA 4.0</a> 进行许可。
            
        </li>
    </ul>
</div>

		</div>
		

		
		<ul class="post-tags-box text-lg mt-1.5 flex-wrap justify-center flex md:hidden">
			
			<li class="tag-item mx-0.5">
				<a href="/tags/%E6%B3%A8%E5%86%8C%E6%9C%BA/">#注册机</a>&nbsp;
			</li>
			
			<li class="tag-item mx-0.5">
				<a href="/tags/%E8%BD%AF%E4%BB%B6%E7%A0%B4%E8%A7%A3/">#软件破解</a>&nbsp;
			</li>
			
		</ul>
		

		

		
		<div class="article-nav my-8 flex justify-between items-center px-2 sm:px-6 md:px-8">
			
			<div class="article-prev border-border-color shadow-redefine-flat shadow-shadow-color-2 rounded-medium px-4 py-2 hover:shadow-redefine-flat-hover hover:shadow-shadow-color-2">
				<a class="prev" rel="prev" href="/2022/11/14/Andromeda%E6%9C%A8%E9%A9%AC%E5%88%86%E6%9E%90/">
					<span class="left arrow-icon flex justify-center items-center">
						<i class="fa-solid fa-chevron-left"></i>
					</span>
					<span class="title flex justify-center items-center">
						<span class="post-nav-title-item">Andromeda木马分析</span>
						<span class="post-nav-item">上一篇</span>
					</span>
				</a>
			</div>
			
			
			<div class="article-next border-border-color shadow-redefine-flat shadow-shadow-color-2 rounded-medium px-4 py-2 hover:shadow-redefine-flat-hover hover:shadow-shadow-color-2">
				<a class="next" rel="next" href="/2021/06/09/VMware%E9%97%AE%E9%A2%98%E6%B1%87%E6%80%BB/">
					<span class="title flex justify-center items-center">
						<span class="post-nav-title-item">VMware问题汇总</span>
						<span class="post-nav-item">下一篇</span>
					</span>
					<span class="right arrow-icon flex justify-center items-center">
						<i class="fa-solid fa-chevron-right"></i>
					</span>
				</a>
			</div>
			
		</div>
		


		
		<div class="comment-container px-2 sm:px-6 md:px-8 pb-8">
			<div class="comments-container mt-10 w-full ">
    <div id="comment-anchor" class="w-full h-2.5"></div>
    <div class="comment-area-title w-full my-1.5 md:my-2.5 text-xl md:text-3xl font-bold">
        评论
    </div>
    

        
            


        
    
</div>

		</div>
		
	</div>

	
	<div class="toc-content-container">
		<div class="post-toc-wrap">
	<div class="post-toc">
		<div class="toc-title">目录</div>
		<div class="page-title">010EDIT破解&amp;注册机</div>
		<ol class="nav"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E7%8E%AF%E5%A2%83%EF%BC%9A"><span class="nav-text">环境：</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E5%88%86%E6%9E%90%E7%9B%AE%E6%A0%87"><span class="nav-text">分析目标</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E5%BC%80%E5%A7%8B%E5%88%86%E6%9E%90"><span class="nav-text">开始分析</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#0x00-%E4%BB%8A%E5%A4%A9%E6%88%91%E4%BB%AC%E5%88%86%E6%9E%90%E7%9A%84%E6%98%AF9-0%E7%89%88%E6%9C%AC"><span class="nav-text">0x00 今天我们分析的是9.0版本</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#0x01-%E5%BC%80%E5%A7%8B%E5%88%86%E6%9E%90%EF%BC%8C%E6%88%91%E4%BB%AC%E7%82%B9%E5%87%BBregister%E6%8C%89%E9%92%AE%EF%BC%8C%E5%BC%B9%E5%87%BA%E6%9D%A5%E7%AA%97%E5%8F%A3%E8%AE%A9%E6%88%91%E4%BB%AC%E8%BE%93%E5%85%A5%E7%94%A8%E6%88%B7%E5%90%8D-amp-%E5%AF%86%E7%A0%81"><span class="nav-text">0x01 开始分析，我们点击register按钮，弹出来窗口让我们输入用户名&amp;密码</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#0x02-%E6%8E%A5%E4%B8%8B%E6%9D%A5%E6%88%91%E4%BB%AC%E5%AF%B9%E5%85%B3%E9%94%AE%E7%AE%97%E6%B3%95%E5%87%BD%E6%95%B0%E8%BF%9B%E8%A1%8C%E8%AF%A6%E7%BB%86%E5%88%86%E6%9E%90"><span class="nav-text">0x02 接下来我们对关键算法函数进行详细分析</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#0x03-%E6%8E%A5%E4%B8%8B%E6%9D%A5%E6%88%91%E4%BB%AC%E5%BC%80%E5%A7%8B%E5%88%86%E6%9E%90%E7%AC%AC%E4%BA%8C%E8%BD%AE%E7%9A%84%E9%AA%8C%E8%AF%81"><span class="nav-text">0x03. 接下来我们开始分析第二轮的验证</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#0x04-%E7%8E%B0%E5%9C%A8%E6%88%91%E4%BB%AC%E6%A2%B3%E7%90%86%E4%B8%80%E4%B8%8B%E6%88%91%E4%BB%AC%E5%B7%B2%E6%9C%89%E7%9A%84%E4%BF%A1%E6%81%AF"><span class="nav-text">0x04 现在我们梳理一下我们已有的信息</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#0x05-let%E2%80%99s-do-it"><span class="nav-text">0x05 let’s do it</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#0x06-%E4%BD%86%E6%98%AF-%E4%B9%8B%E5%90%8E%E5%9C%A8%E4%BD%BF%E7%94%A8%E4%B8%80%E6%AE%B5%E6%97%B6%E9%97%B4%E5%90%8E-%E5%8F%AF%E8%83%BD%E8%BF%98%E4%BC%9A%E6%9C%89%E7%BD%91%E7%BB%9C%E9%AA%8C%E8%AF%81-%E4%BC%9A%E6%8F%90%E7%A4%BA%E8%AF%B4key%E6%97%A0%E6%95%88%E7%9A%84%E9%97%AE%E9%A2%98"><span class="nav-text">0x06 但是, 之后在使用一段时间后, 可能还会有网络验证, 会提示说key无效的问题</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#over"><span class="nav-text">over</span></a></li></ol></li></ol>

	</div>
</div>
	</div>
	
</div>
			</div>

			
		</div>

		<div class="main-content-footer">
			<footer class="footer mt-5 py-5 h-auto text-base text-third-text-color relative border-t-2 border-t-border-color">
    <div class="info-container py-3 text-center">
        
        <div class="text-center">
            &copy;
            
              <span>2022</span>
              -
            
            2025&nbsp;&nbsp;<i class="fa-solid fa-heart fa-beat" style="--fa-animation-duration: 0.5s; color: #f54545"></i>&nbsp;&nbsp;<a href="/">xiaoeryu</a>
            
                
                <p class="post-count space-x-0.5">
                    <span>
                        共撰写了 112 篇文章
                    </span>
                    
                </p>
            
        </div>
        
            <script data-swup-reload-script src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
            <div class="relative text-center lg:absolute lg:right-[20px] lg:top-1/2 lg:-translate-y-1/2 lg:text-right">
                
                    <span id="busuanzi_container_site_uv" class="lg:!block">
                        <span class="text-sm">访问人数</span>
                        <span id="busuanzi_value_site_uv"></span>
                    </span>
                
                
                    <span id="busuanzi_container_site_pv" class="lg:!block">
                        <span class="text-sm">总访问量</span>
                        <span id="busuanzi_value_site_pv"></span>
                    </span>
                
            </div>
        
        <div class="relative text-center lg:absolute lg:left-[20px] lg:top-1/2 lg:-translate-y-1/2 lg:text-left">
            <span class="lg:block text-sm">由 <?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="relative top-[2px] inline-block align-baseline" version="1.1" id="圖層_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1rem" height="1rem" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"><path fill="#0E83CD" d="M256.4,25.8l-200,115.5L56,371.5l199.6,114.7l200-115.5l0.4-230.2L256.4,25.8z M349,354.6l-18.4,10.7l-18.6-11V275H200v79.6l-18.4,10.7l-18.6-11v-197l18.5-10.6l18.5,10.8V237h112v-79.6l18.5-10.6l18.5,10.8V354.6z"/></svg><a target="_blank" class="text-base" href="https://hexo.io">Hexo</a> 驱动</span>
            <span class="text-sm lg:block">主题&nbsp;<a class="text-base" target="_blank" href="https://github.com/EvanNotFound/hexo-theme-redefine">Redefine v2.8.2</a></span>
        </div>
        
        
            <div>
                博客已运行 <span class="odometer" id="runtime_days" ></span> 天 <span class="odometer" id="runtime_hours"></span> 小时 <span class="odometer" id="runtime_minutes"></span> 分钟 <span class="odometer" id="runtime_seconds"></span> 秒
            </div>
        
        
            <script data-swup-reload-script>
                try {
                    function odometer_init() {
                    const elements = document.querySelectorAll('.odometer');
                    elements.forEach(el => {
                        new Odometer({
                            el,
                            format: '( ddd).dd',
                            duration: 200
                        });
                    });
                    }
                    odometer_init();
                } catch (error) {}
            </script>
        
        
        
    </div>  
</footer>
		</div>
	</div>

	
	<div class="post-tools">
		<div class="post-tools-container">
	<ul class="article-tools-list">
		<!-- TOC aside toggle -->
		
		<li class="right-bottom-tools page-aside-toggle">
			<i class="fa-regular fa-outdent"></i>
		</li>
		

		<!-- go comment -->
		
		<li class="go-comment">
			<i class="fa-regular fa-comments"></i>
		</li>
		
	</ul>
</div>
	</div>
	

	<div class="right-side-tools-container">
		<div class="side-tools-container">
	<ul class="hidden-tools-list">
		<li class="right-bottom-tools tool-font-adjust-plus flex justify-center items-center">
			<i class="fa-regular fa-magnifying-glass-plus"></i>
		</li>

		<li class="right-bottom-tools tool-font-adjust-minus flex justify-center items-center">
			<i class="fa-regular fa-magnifying-glass-minus"></i>
		</li>

		<li class="right-bottom-tools tool-dark-light-toggle flex justify-center items-center">
			<i class="fa-regular fa-moon"></i>
		</li>

		<!-- rss -->
		

		

		<li class="right-bottom-tools tool-scroll-to-bottom flex justify-center items-center">
			<i class="fa-regular fa-arrow-down"></i>
		</li>
	</ul>

	<ul class="visible-tools-list">
		<li class="right-bottom-tools toggle-tools-list flex justify-center items-center">
			<i class="fa-regular fa-cog fa-spin"></i>
		</li>
		
		<li class="right-bottom-tools tool-scroll-to-top flex justify-center items-center">
			<i class="arrow-up fas fa-arrow-up"></i>
			<span class="percent"></span>
		</li>
		
		
	</ul>
</div>
	</div>

	<div class="image-viewer-container">
	<img src="">
</div>

	
	<div class="search-pop-overlay">
	<div class="popup search-popup">
		<div class="search-header">
			<span class="search-input-field-pre">
				<i class="fa-solid fa-keyboard"></i>
			</span>
			<div class="search-input-container">
				<input autocomplete="off" autocorrect="off" autocapitalize="off" placeholder="站内搜索您需要的内容..." spellcheck="false" type="search" class="search-input">
			</div>
			<span class="popup-btn-close">
				<i class="fa-solid fa-times"></i>
			</span>
		</div>
		<div id="search-result">
			<div id="no-result">
				<i class="fa-solid fa-spinner fa-spin-pulse fa-5x fa-fw"></i>
			</div>
		</div>
	</div>
</div>
	

</main>



<script src="/js/build/libs/Swup.min.js"></script>

<script src="/js/build/libs/SwupSlideTheme.min.js"></script>

<script src="/js/build/libs/SwupScriptsPlugin.min.js"></script>

<script src="/js/build/libs/SwupProgressPlugin.min.js"></script>

<script src="/js/build/libs/SwupScrollPlugin.min.js"></script>

<script src="/js/build/libs/SwupPreloadPlugin.min.js"></script>

<script>
    const swup = new Swup({
        plugins: [
            new SwupScriptsPlugin({
                optin: true,
            }),
            new SwupProgressPlugin(),
            new SwupScrollPlugin({
                offset: 80,
            }),
            new SwupSlideTheme({
                mainElement: ".main-content-body",
            }),
            new SwupPreloadPlugin(),
        ],
        containers: ["#swup"],
    });
</script>




	
<script src="/js/build/tools/imageViewer.js" type="module"></script>

<script src="/js/build/utils.js" type="module"></script>

<script src="/js/build/main.js" type="module"></script>

<script src="/js/build/layouts/navbarShrink.js" type="module"></script>

<script src="/js/build/tools/scrollTopBottom.js" type="module"></script>

<script src="/js/build/tools/lightDarkSwitch.js" type="module"></script>

<script src="/js/build/layouts/categoryList.js" type="module"></script>



    
<script src="/js/build/tools/localSearch.js" type="module"></script>




    
<script src="/js/build/tools/codeBlock.js" type="module"></script>




    
<script src="/js/build/layouts/lazyload.js" type="module"></script>




    
<script src="/js/build/tools/runtime.js"></script>

    
<script src="/js/build/libs/odometer.min.js"></script>

    
<link rel="stylesheet" href="/assets/odometer-theme-minimal.css">




  
<script src="/js/build/libs/Typed.min.js"></script>

  
<script src="/js/build/plugins/typed.js" type="module"></script>








    
<script src="/js/build/libs/anime.min.js"></script>





    
<script src="/js/build/tools/tocToggle.js" type="module" data-swup-reload-script=""></script>

<script src="/js/build/layouts/toc.js" type="module" data-swup-reload-script=""></script>

<script src="/js/build/plugins/tabs.js" type="module" data-swup-reload-script=""></script>




<script src="/js/build/libs/moment-with-locales.min.js" data-swup-reload-script=""></script>


<script src="/js/build/layouts/essays.js" type="module" data-swup-reload-script=""></script>





	
</body>

</html>